g_signal_emit_by_name (self, "bounds-changed", &rect);
}
-/* Translate GtkWidget mapped state into AtkObject showing */
-static gint
-map_cb (GtkWidget *widget)
+/*< private >
+ * gtk_widget_accessible_notify_showing:
+ * @self: a #GtkWidgetAccessible
+ *
+ * Translates the #GtkWidget mapped state into the #AtkObject
+ * showing state.
+ */
+void
+gtk_widget_accessible_notify_showing (GtkWidgetAccessible *self)
{
- AtkObject *accessible;
+ g_return_if_fail (GTK_IS_WIDGET_ACCESSIBLE (self));
+
+ GtkWidget *widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (self));
- accessible = gtk_widget_get_accessible (widget);
- atk_object_notify_state_change (accessible, ATK_STATE_SHOWING,
+ atk_object_notify_state_change (ATK_OBJECT (self),
+ ATK_STATE_SHOWING,
gtk_widget_get_mapped (widget));
- return 1;
}
static void
widget = GTK_WIDGET (data);
g_signal_connect (widget, "notify", G_CALLBACK (notify_cb), NULL);
- g_signal_connect (widget, "map", G_CALLBACK (map_cb), NULL);
- g_signal_connect (widget, "unmap", G_CALLBACK (map_cb), NULL);
GTK_WIDGET_ACCESSIBLE (obj)->priv->layer = ATK_LAYER_WIDGET;
obj->role = ATK_ROLE_UNKNOWN;
void _gtk_widget_accessible_set_layer (GtkWidgetAccessible *accessible,
AtkLayer layer);
-void gtk_widget_accessible_update_bounds (GtkWidgetAccessible *self);
+void gtk_widget_accessible_update_bounds (GtkWidgetAccessible *self);
+
+void gtk_widget_accessible_notify_showing (GtkWidgetAccessible *self);
G_END_DECLS
if (!_gtk_widget_get_mapped (widget))
{
+ GtkWidgetPrivate *priv = gtk_widget_get_instance_private (widget);
+
gtk_widget_push_verify_invariants (widget);
if (!_gtk_widget_get_realized (widget))
gtk_widget_realize (widget);
+ if (priv->accessible != NULL)
+ gtk_widget_accessible_notify_showing (GTK_WIDGET_ACCESSIBLE (priv->accessible));
+
g_signal_emit (widget, widget_signals[MAP], 0);
update_cursor_on_state_change (widget);
if (_gtk_widget_get_mapped (widget))
{
+ GtkWidgetPrivate *priv = gtk_widget_get_instance_private (widget);
+
g_object_ref (widget);
gtk_widget_push_verify_invariants (widget);
g_signal_emit (widget, widget_signals[UNMAP], 0);
+ if (priv->accessible != NULL)
+ gtk_widget_accessible_notify_showing (GTK_WIDGET_ACCESSIBLE (priv->accessible));
+
update_cursor_on_state_change (widget);
gtk_widget_pop_verify_invariants (widget);